iT邦幫忙

2024 iThome 鐵人賽

DAY 24
0
Software Development

數位醫療與雲原生第一次的親密接觸系列 第 24

Day 24 [ 雲原生 ( Cloud Native ) ] Observability 介紹

  • 分享至 

  • xImage
  •  

接下來要跟大家分享的是Observability,Observability 是一個在Cloud Native新興的概念,包含了監測、示警、日誌管理、trace log管理等等,利用可視化的介面分析系統所有signals。以此優化系統效率、確保系統穩定運行,並在系統有問題時能更快速的發現問題點且解決。是在微服務環境下非常重要的一個單元,在監控服務(HAPI FHIR Server)上非常方便。

核心三本柱:

  • 指標(Metrics):

    • 通常以時間序列(Time-series DB)的方式儲存。常見的指標包括 CPU 使用率、記憶體消耗、請求延遲(Request Latency)等。在K8s環境中常見使用 Prometheus來收集指標,它能夠自動抓取和存儲應用程式和基礎設施(Infrastructure,如K8s本身)的性能數據。
  • 日誌(Logs):

    • 日誌是應用程序運行時生成的事件記錄(text),通常以時間戳和事件類型的形式存儲。日誌能夠提供上下文信息,有助於診斷問題。常見的日誌管理系統有 ELK Stack(Elasticsearch、Logstash、Kibana)、Loki Stack(Loki、Promtail、Grafana) 等等,能進行日誌存儲和分析,更有效地處理和搜尋大量日誌數據。
  • Tracing:

    • Tracing是指對request在系統中流動的log,能夠幫助識別性能瓶頸和服務間的延遲,提供跨服務的請求流向資訊。會使用 OpenTelemetry、Jaeger、Zipkin 等工具來收集和分析追蹤數據,這些工具能夠生成可視化的服務拓撲圖,幫助分析請求在不同服務間的流動。

微服務架構的引進

在微服務架構下,雖然服務的穩定及可用性較單體式架構表現更好,但是在管理上麻煩許多,如果沒有優秀的監控系統和日誌管理工具,在查找問題時會多費很多功夫。

Tracing 則是在複雜的微服務環境中需要引進的監控工具,如果目前的微服務環境沒那麼複雜,可以考慮先不引進Tracing,不過至少要有監控系統和日誌管理工具。

Observability tools ---- Grafana全家桶

Grafana在Observability工具中推出了完整的服務生態系,包含Metrics(監控系統,Prometheus)、Logs(日誌管理系統,Loki)、Tracing(trace logs,Tempo)再加上Grafana自身好用的GUI介面,可以在同個Grafana服務上註冊多個Resource,用一個Grafana查看所有Resource。

Grafana三本柱

  • Prometheus:
    Metrics的監控後端,對收集來的指標進行分析,並在系統出錯時進行告警(alert manager) 。

  • Loki:
    Logs的管理後端,對程式產生的Log進行分析,建立Label並儲存。

  • Tempo ( Tracing ):
    分散式系統的trace log。

監控系統及日誌管理系統選擇

Prometheus是最常見用來監控K8s及其上服務的監控系統,發展得非常成熟,還有豐厚的社群支援,是用來監控K8s環境的一時之選。

日誌管理系統更多人用的是ELK Stack(Elasticsearch、Logstash、Kibana),它的功能強大,支援複雜的檢索且許多服務都有內建相關的適配(HAPI FHIR Server),缺點就是太耗資源,RAM給多少它就會用到滿,如果是配置較差的VM在運行Elasticsearch後就會很緊繃了,而且建置困難。而另一個由Grafana推出的日誌管理系統 ---Loki Stack(Loki、Promtail、Grafana)則是輕量級的框架,建置簡單且不那麼耗資源,缺點就是無法執行較複雜的檢索且許多服務沒有內建相關的適配,需要自己寫。

這兩個日誌管理系統都很不錯,但因為ELK需要耗費的資源太多了,且常常日誌管理也不需要那麼複雜的檢索,所以最後選擇使用Loki Stack來作為當前的日誌管理系統。

而Tracing的部分則是因為當前的系統沒那麼複雜,若是之後有越多越多服務上架,就要開始研究如何使用Tempo了嗚嗚嗚。

接下來的文章會介紹Prometheus和Loki的建置與操作。


上一篇
Day 23 [雲原生( Cloud Native ) ] Keycloak使用操作手冊
下一篇
Day 25 [ 雲原生 (Cloud Native ) ] Prometheus 二進制部署 & 監控 Tomcat
系列文
數位醫療與雲原生第一次的親密接觸30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言